package com.topone.service;

import com.topone.dataObject.TcCoupon;
import com.topone.dto.*;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

import java.util.List;

/**
 * Created by Administrator on 2017/11/6,0006.
 */
public interface TcCouponService {

   //查询单个优惠券
    TcCoupon findOne(String couponId);

   //根据商家id查询优惠券
    List<TcCoupon>  findCouponByBussinessId(String bussinessId);

    //查询所有优惠券
    Page<TcCoupon> findAll(Pageable pageable);

    List<TcCoupon> findUpAll(Integer status);

    //查找所有折扣券
    List<TcCouponDTO> findDiscountCoupon(Integer status);

    //查找所有代金券
    List<TcCouponDTO> findCashCoupon(Integer status);

    //保存和更新优惠券
    TcCoupon save(TcCoupon tcCoupon);

    //加库存
    void increaseStock(List<CartDTO> couponDtoList);

    //减库存
    void  decreaseStock(List<CartDTO> couponDtoList);

   //上架
    TcCoupon onSale(String couponId);

   //下架
   TcCoupon offSale(String couponId);

   //根据商家状态查找优惠券
    List<BussinessDTO> findAllByStatus(TcCouponDTO tcCouponDTO);

    //查询所有有效优惠券
    List<TcCouponDTO> findAllCoupon(Integer status);

    //查询待支付的商家优惠券信息
    List<TcCouponDTO> paymentCoupon(String bussinessId,String couponId);

    //查询待支付的买家个人信息（手机号码）
    List<TcUserCouponDTO> findphoneBycouponId(String couponId,String openid);

    //查询免费优惠券
    List<TcCouponDTO> freeCoupon(Integer isFlashsale);

    //限时抢购优惠券
    List<TcCouponDTO> findFlashSaleCoupon(Integer isFlashsale);

    //优惠券超时处理(查询)
    List<TcCouponDTO> dealCouponOverTime();

    //优惠券超时处理(更新)
    void cancelCouponOverTime(String couponId);

  //根据优惠券名称,模糊查询优惠券
  List<TcCouponDTO> queryCouponNameLikeList(String couponName);
 }




